package co.infinum.goldfinger.example;

import ohos.app.Context;
import ohos.data.DatabaseHelper;
import ohos.data.preferences.Preferences;

/**
 * ex.
 *
 * @author zh
 * @since 2021-06-25
 */
public class SharedPrefs {
    private static Preferences preferences;

    /**
     * init
     * @param context context
     */
    public static void init(Context context) {
        DatabaseHelper databaseHelper = new DatabaseHelper(context); // context入参类型为ohos.app.Context。
        String fileName = "My awesome app prefs"; // fileName表示文件名，其取值不能为空，也不能包含路径，默认存储目录可以通过context.getPreferencesDir()获取。
        preferences = databaseHelper.getPreferences(fileName);
    }

    /**
     * clear
     */
    public static void clear() {
        preferences.clear().flush();
    }

    /**
     * clearFingerprintPin
     */
    public static void clearFingerprintPin() {
        preferences.delete("fp_pin").flush();
    }

    /**
     * getFingerprintPin
     *
     * @return fp_pin
     */
    public static String getFingerprintPin() {
        return preferences.getString("fp_pin", null);
    }

    /**
     * getPin
     *
     * @return encryptedPin
     */
    public static String getPin() {
        String encryptedPin = preferences.getString("pin", "");
        if ("".equals(encryptedPin)) {
            return "";
        }
        return encryptedPin;
    }

    /**
     * isRxExample
     *
     * @return isRx
     */
    public static boolean isRxExample() {
        return preferences.getBoolean("isRx", false);
    }

    /**
     * setFingerprintPin
     *
     * @param encryptedPin encryptedPin
     */
    public static void setFingerprintPin(String encryptedPin) {
        preferences.putString("fp_pin", encryptedPin).flush();
    }

    /**
     * setPin
     *
     * @param pin pin
     */
    public static void setPin(String pin) {
        preferences.putString("pin", pin).flush();
    }

    /**
     * setRxExample
     *
     * @param isRxExample isRxExample
     */
    public static void setRxExample(boolean isRxExample) {
        preferences.putBoolean("isRx", isRxExample).flushSync();
    }
}
